package model;

import java.util.ArrayList;
import java.util.Date;

public class Caixa {
	private String nome;
	private Cliente cliente = null;
	private int mili;
	private int qtdAtendimento = 0;
	public static ArrayList<Caixa> filaCircular = new ArrayList<Caixa>();
	public static ArrayList<Cliente> filaCliente = new ArrayList<Cliente>();
	
	public Caixa(String nome, int tempoAlocacao) {
		this.nome = nome;
		this.mili = tempoAlocacao;
		
		filaCircular.add(this);
	}
	
	public int getQtdAtendimento() {
		return qtdAtendimento;
	}
	
	public int getTempoAtendimento() {
		return mili;
	}

	public void setQtdAtendimento(int qtdAtendimento) {
		this.qtdAtendimento = qtdAtendimento;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public String getNome() {
		return nome;
	}
	
	public synchronized static void iniciaAtendimento(Caixa ca, Cliente c){
		ca.setQtdAtendimento(ca.getQtdAtendimento() + 1);
		
		Caixa.filaCircular.remove(ca);
		ca.setCliente(c);
	}
	
	public void aloca(){
		try {
			Thread.sleep(mili);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
	
	public synchronized static void terminaAtendimento(Caixa ca){
		filaCircular.add(ca);
		System.out.println(ca.getCliente().getNome() + " pagou no " + ca.getNome() + " em " + Loja.formato.format(new Date()) + "\n" + ca.getCliente().getNome() + " sai da loja.");
	}
}
